﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Modelo.Interface;

namespace BL
{
  public   class ServicePercurso
    {
       IDalPercurso _dalPercurso;

        public ServicePercurso()
        {
            //_dalPercurso = (IDalPercurso)(Activator.CreateInstance(Properties.Settings.Default.Dal.Split('.')[0], Properties.Settings.Default.Dal + "." + "DalPercurso")).Unwrap();
            _dalPercurso = new DalEntity.Implementacao.DalPercurso();
        }
        
        public IList<Modelo.Percurso>  RetornaPercursos()
        {
            try
            {
                return _dalPercurso.ListaPercursos();
            }
            catch (Exception ex)
            {
                Log.insertLog(ex.Message, "RetornaPercursos", "ServicePercurso");
                throw ex;
            }
        }
        
        public object RetornaPercursoID(int id)
        {
            try
            {
                return _dalPercurso.RetornaPercursoID(id);
            }
            catch (Exception ex)
            {  
                Log.insertLog(ex.Message, "RetornaPercursosID", "ServicePercurso");
                throw ex;
            }
        }

        public bool ExcluiPercurso(int id)
        {
            try
            {
                return (_dalPercurso.ExcluiPercurso(id));
            }
            catch (Exception ex)
            {
                Log.insertLog(ex.Message, "ExcluiPercurso", "ServicePercurso");
                return false;
            }
        }

        public bool GravarPercurso(Modelo.Percurso Percurso)
        {
            try
            {
               return( _dalPercurso.InserePercurso<Modelo.Percurso>(Percurso));
            }
            catch (Exception ex)
            {
              Log.insertLog(ex.Message, "GravarPercurso", "ServicePercurso");
              return false;
            }
        }

        public bool AlterarPercurso(Modelo.Percurso Percurso)
        {

            try
            {
                return (_dalPercurso.UpdatePercurso(Percurso));
            }
            catch (Exception ex)
            {
                Log.insertLog(ex.Message, "AlterarPercurso", "ServicePercurso");
                return false;
            }
        }
        
    }
}
